package com.ykht.proj.coupon.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;


@Data
@ToString
public class VOrderCardVO {
	/**
	 *
	 */
	@TableId
	@ApiModelProperty(value="")
	private Long id;
	/**
	 * 批次ID
	 */
	@ApiModelProperty(value="批次ID")
	private String batchId;
	/**
	 * 订单ID
	 */
	@ApiModelProperty(value="订单ID")
	private Long orderId;
	@ApiModelProperty(value="订单编号")
	private String orderCode;
	/**
	 * 活动ID
	 */
	@ApiModelProperty(value="活动ID")
	private Long activityId;
	@ApiModelProperty(value="卡的原价")
	private BigDecimal cardPrice;
	@ApiModelProperty(value="实际支付价格")
	private BigDecimal cardActualPrice;
	@ApiModelProperty(value="优惠了多少金额")
	private BigDecimal cardReducePrice;
	@ApiModelProperty(value="返佣金额")
	private BigDecimal returnMoney;
	@ApiModelProperty(value="分享id")
	private Long shareId;
	/**
	 * 当前购买活动ID
	 */
	@ApiModelProperty(value="当前购买活动ID")
	private Long orderActivityId;
	/**
	 * 核销码（卡激活码）
	 */
	@ApiModelProperty(value="兑换码")
	private String redeemCode;
	@ApiModelProperty(value="兑换时间")
	private LocalDateTime redeemTime;

	/**
	 * 卡状态：0未兑换1已兑换 2已激活
	 */
	@ApiModelProperty(value="卡状态  0未兑换1已兑换 2已激活")
	private Integer cardStatus;
	@ApiModelProperty(value="支付方式：支付方式： 0微信支付  1现金  2对公转账")
	private Integer payType;
	/**
	 * 支付单号
	 */
	@ApiModelProperty(value="支付单号")
	private String transactionId;
	/**
	 * 支付状态 0 待支付 1已完成  2已过期3已取消
	 */
	@ApiModelProperty(value="支付状态 0 待支付 1已完成  2已过期3已取消")
	private Integer payStatus;
	/**
	 * 支付时间
	 */
	@ApiModelProperty(value="支付时间")
	private LocalDateTime payTime;
	/**
	 * 卡ID
	 */
	@ApiModelProperty(value="卡ID")
	private Long cardId;

	/**
	 * 卡类型：0普通卡（展示卡本身外貌）   1联名卡（展示企业自己设置的外貌）
	 */
	@ApiModelProperty(value="卡类型：0普通卡（展示卡本身外貌）   1联名卡（展示企业自己设置的外貌）")
	private Integer cardType;
	/**
	 * 卡名称
	 */
	@ApiModelProperty(value="卡名称")
	private String cardName;
	/**
	 * 卡背板图（卡片图）
	 */
	@ApiModelProperty(value="卡背板图（卡片图）")
	private String cardImg;
	/**
	 * 激活有效期:开始时间
	 */
	@ApiModelProperty(value="激活有效期:开始时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private LocalDateTime startTime;
	/**
	 * 激活有效期:结束时间
	 */
	@ApiModelProperty(value="激活有效期:结束时间")
	@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private LocalDateTime endTime;
	/**
	 * 用户ID
	 */
	@ApiModelProperty(value="用户ID")
	private Long personId;
	/**
	 * 用户名
	 */
	@ApiModelProperty(value="用户名")
	private String personName;
	/**
	 * 手机号
	 */
	@ApiModelProperty(value="手机号")
	private String personPhone;
	/**
	 * 企业ID
	 */
	@ApiModelProperty(value="企业ID")
	private Long enterpriseId;
	/**
	 * 客戶类型：0个人  1企业
	 */
	@ApiModelProperty(value="客戶类型：0个人  1企业")
	private Integer customerType;
	/**
	 * 购买类型（订单来源）： 0小程序  1代客下单
	 */
	@ApiModelProperty(value="购买类型（订单来源）： 0小程序  1代客下单")
	private Integer purchaseType;
	/**
	 * 创建人
	 */
	@ApiModelProperty(value="创建人")
	private Long createUser;
	/**
	 * 修改人
	 */
	@ApiModelProperty(value="修改人")
	private Long updateUser;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value="创建时间")
	private LocalDateTime createTime;
	/**
	 * 更新时间
	 */
	@ApiModelProperty(value="更新时间")
	private LocalDateTime updateTime;
	/**
	 * 0可用1删除
	 */
	@ApiModelProperty(value="0可用1删除")
	@TableLogic
	private Integer delFlag;
	/**
	 * 租户ID
	 */
	@ApiModelProperty(value="租户ID",hidden=true)
	private Integer tenantId;
}
